/*
更新日期：2017、02、15
作者：盛彬
备注信息：
模块内闭合 注意内存问题
一次调用，自动关闭后重启不要有残余
*/
#pragma once
#include "libLog.hpp"
#include "IntelligentParser.hpp"
#include "AVCodecContextPP.hpp"
#include "AVPacketPP.hpp"

#ifndef libInputStream_H
#define libInputStream_H

static time_t last_time;
static time_t now_time;

class libInputStream :public libLog
{
public:
    int InitInputStream(libIntelligentParser *_IP);
    bool GetInputStatus(); //主线程里面用这玩意监视模块状态，若发现模块挂了，就再启动一下
private:    
    int StartInputStreamThread();
    static void Thread_InputStream(void *p_this);

    void Thread_InputStreamm();
    static int interrupt_ic(void *_ctx);
private:
    libIntelligentParser *IP;
    bool b_thread_flag{ false }; //模块运行标志

private:
    AVFormatContext *input_ctx{ NULL }; //c NULL 

};

#endif //libInputStream_H